String Handling Functions (স্ট্রিং হ্যান্ডলিং ফাংশনস)

Computer Programming - সি স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স (C Standard Library Reference)
245
245

String Handling Functions (স্ট্রিং হ্যান্ডলিং ফাংশনস)

সি প্রোগ্রামিং ভাষায় স্ট্রিং পরিচালনার জন্য string.h হেডার ফাইলটি ব্যবহৃত হয়। স্ট্রিং হ্যান্ডলিং ফাংশনগুলো স্ট্রিং ম্যানিপুলেশনের বিভিন্ন কাজ সম্পাদন করতে সহায়ক, যেমন স্ট্রিং কপি করা, স্ট্রিং এর দৈর্ঘ্য বের করা, স্ট্রিং তুলনা করা ইত্যাদি। নিচে সি ভাষায় ব্যবহৃত গুরুত্বপূর্ণ স্ট্রিং হ্যান্ডলিং ফাংশনগুলো এবং তাদের কাজ সম্পর্কে আলোচনা করা হলো।


১. strlen() – স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ

strlen() ফাংশনটি একটি স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ করতে ব্যবহৃত হয়। এটি স্ট্রিংয়ের মোট ক্যারেক্টার সংখ্যা (null terminator বাদে) রিটার্ন করে।

সিঙ্কট্যাক্স:

size_t strlen(const char *str);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char text[] = "Hello, World!";
    int length = strlen(text);  // স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ

    printf("Length of the string: %d\n", length);
    return 0;
}

২. strcpy() – স্ট্রিং কপি

strcpy() ফাংশনটি একটি স্ট্রিংকে অন্য একটি স্ট্রিংয়ে কপি করতে ব্যবহৃত হয়। এই ফাংশনের মাধ্যমে source স্ট্রিংটিকে destination স্ট্রিংয়ে কপি করা হয়।

সিঙ্কট্যাক্স:

char *strcpy(char *destination, const char *source);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char source[] = "Hello, World!";
    char destination[50];

    strcpy(destination, source);  // `source` কে `destination` এ কপি

    printf("Copied string: %s\n", destination);
    return 0;
}

৩. strncpy() – নির্দিষ্ট সংখ্যক ক্যারেক্টার কপি করা

strncpy() ফাংশনটি একটি স্ট্রিং থেকে নির্দিষ্ট সংখ্যক ক্যারেক্টার কপি করতে ব্যবহৃত হয়। এটি strcpy() এর মতোই, তবে এখানে আপনি কপির সংখ্যা নির্ধারণ করতে পারেন।

সিঙ্কট্যাক্স:

char *strncpy(char *destination, const char *source, size_t num);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char source[] = "Hello, World!";
    char destination[50];

    strncpy(destination, source, 5);  // প্রথম ৫টি ক্যারেক্টার কপি করা
    destination[5] = '\0';  // null character যোগ করে সম্পূর্ণ স্ট্রিং করা

    printf("Copied string: %s\n", destination);
    return 0;
}

৪. strcmp() – স্ট্রিং তুলনা

strcmp() ফাংশনটি দুটি স্ট্রিং তুলনা করার জন্য ব্যবহৃত হয়। যদি স্ট্রিংগুলো সমান হয়, তাহলে এটি ০ রিটার্ন করে। যদি সমান না হয়, তাহলে এটি একটি পজিটিভ বা নেগেটিভ মান রিটার্ন করে।

সিঙ্কট্যাক্স:

int strcmp(const char *str1, const char *str2);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "Hello";
    char str3[] = "World";

    if (strcmp(str1, str2) == 0) {
        printf("str1 and str2 are equal.\n");
    }

    if (strcmp(str1, str3) != 0) {
        printf("str1 and str3 are not equal.\n");
    }

    return 0;
}

৫. strcat() – স্ট্রিং যুক্ত করা

strcat() ফাংশনটি দুটি স্ট্রিং একত্রিত (concatenate) করতে ব্যবহৃত হয়। এটি source স্ট্রিংটিকে destination স্ট্রিংয়ের শেষে যুক্ত করে।

সিঙ্কট্যাক্স:

char *strcat(char *destination, const char *source);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[50] = "Hello, ";
    char str2[] = "World!";

    strcat(str1, str2);  // str2 কে str1 এর শেষে যুক্ত করা

    printf("Concatenated string: %s\n", str1);
    return 0;
}

৬. strncat() – নির্দিষ্ট সংখ্যক ক্যারেক্টার যুক্ত করা

strncat() ফাংশনটি দুটি স্ট্রিং যুক্ত করার জন্য ব্যবহৃত হয়, তবে নির্দিষ্ট সংখ্যক ক্যারেক্টার পর্যন্ত। এটি source স্ট্রিংটির নির্দিষ্ট অংশকে destination স্ট্রিংয়ের শেষে যুক্ত করে।

সিঙ্কট্যাক্স:

char *strncat(char *destination, const char *source, size_t num);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[50] = "Hello, ";
    char str2[] = "World!";

    strncat(str1, str2, 3);  // str2 এর প্রথম ৩টি ক্যারেক্টার str1 এ যুক্ত করা

    printf("Concatenated string: %s\n", str1);
    return 0;
}

৭. strchr() – স্ট্রিংয়ে একটি নির্দিষ্ট ক্যারেক্টার খোঁজা

strchr() ফাংশনটি একটি স্ট্রিংয়ে একটি নির্দিষ্ট ক্যারেক্টার খুঁজে বের করে। এটি প্রথম পাওয়া মিল থাকা ক্যারেক্টারের পয়েন্টার রিটার্ন করে, না থাকলে NULL রিটার্ন করে।

সিঙ্কট্যাক্স:

char *strchr(const char *str, int character);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char text[] = "Hello, World!";
    char *pos = strchr(text, 'W');  // 'W' ক্যারেক্টারের অবস্থান খুঁজে বের করা

    if (pos != NULL) {
        printf("Character 'W' found at position: %ld\n", pos - text);
    } else {
        printf("Character 'W' not found.\n");
    }

    return 0;
}

৮. strstr() – স্ট্রিংয়ে একটি সাবস্ট্রিং খোঁজা

strstr() ফাংশনটি একটি স্ট্রিংয়ের মধ্যে একটি সাবস্ট্রিং খুঁজে বের করতে ব্যবহৃত হয়। এটি প্রথম পাওয়া সাবস্ট্রিংয়ের পয়েন্টার রিটার্ন করে, না থাকলে NULL রিটার্ন করে।

সিঙ্কট্যাক্স:

char *strstr(const char *str, const char *substring);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char text[] = "Hello, World!";
    char *pos = strstr(text, "World");  // "World" সাবস্ট্রিং এর অবস্থান খুঁজে বের করা

    if (pos != NULL) {
        printf("Substring 'World' found at position: %ld\n", pos - text);
    } else {
        printf("Substring 'World' not found.\n");
    }

    return 0;
}

সারসংক্ষেপ

ফাংশনকাজ
strlen()স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ করে
strcpy()একটি স্ট্রিংকে অন্য স্ট্রিংয়ে কপি করে
strncpy()নির্দিষ্ট সংখ্যক ক্যারেক্টার কপি করে
strcmp()দুটি স্ট্রিং তুলনা করে
strcat()দুটি স্ট্রিং যুক্ত করে
strncat()নির্দিষ্ট সংখ্যক ক্যারেক্টার যুক্ত করে
strchr()স্ট্রিংয়ে একটি নির্দিষ্ট ক্যারেক্টার খোঁজে
strstr()স্ট্রিংয়ে একটি সাবস্ট্রিং খোঁজে

সি ভাষার স্ট্রিং হ্যান্ডলিং ফাংশনগুলো স্ট্রিং ম্যানিপুলেশনের জন্য কার্যকর এবং সহজে ব্যবহৃত হয়। এই ফাংশনগুলো string.h হেডার ফাইলের মাধ্যমে সরবরাহ করা হয় এবং প্রোগ্রামারদের বিভিন্ন কাজ সম্পাদনে সহায়ক।

common.content_added_by

string.h হেডার ফাইল এবং এর ফাংশনসমূহ

242
242

string.h হেডার ফাইল এবং এর ফাংশনসমূহ

string.h হেডার ফাইলটি সি প্রোগ্রামিং ভাষায় স্ট্রিং ম্যানিপুলেশন (String Manipulation) বা স্ট্রিং পরিচালনার জন্য ব্যবহৃত হয়। এটি বিভিন্ন ধরনের ফাংশন সরবরাহ করে, যা স্ট্রিং কপি করা, তুলনা করা, স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ, স্ট্রিং একত্রিত করা এবং অন্যান্য স্ট্রিং সংক্রান্ত কাজ সহজ করে তোলে। এখানে string.h হেডার ফাইলের কিছু গুরুত্বপূর্ণ ফাংশনের বিবরণ দেওয়া হলো।


১. strlen() – স্ট্রিংয়ের দৈর্ঘ্য নির্ণয়

strlen() ফাংশনটি একটি স্ট্রিংয়ের দৈর্ঘ্য নির্ণয় করতে ব্যবহৃত হয়। এটি স্ট্রিংয়ের মোট ক্যারেক্টারের সংখ্যা রিটার্ন করে (null চরিত্র ছাড়া)।

সিঙ্কট্যাক্স:

size_t strlen(const char *str);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char text[] = "Hello, World!";
    printf("Length of text: %zu\n", strlen(text));  // %zu স্ট্যান্ডার্ড আউটপুট ফরম্যাট size_t-এর জন্য
    return 0;
}

২. strcpy() – স্ট্রিং কপি করা

strcpy() ফাংশনটি একটি স্ট্রিংকে অন্য স্ট্রিংয়ে কপি করতে ব্যবহৃত হয়। এটি সোর্স স্ট্রিং থেকে ডেস্টিনেশন স্ট্রিংয়ে কপি করে।

সিঙ্কট্যাক্স:

char *strcpy(char *dest, const char *src);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello";
    char dest[20];
    strcpy(dest, src);
    printf("Copied string: %s\n", dest);
    return 0;
}

৩. strncpy() – নির্দিষ্ট সংখ্যক ক্যারেক্টার কপি করা

strncpy() ফাংশনটি সোর্স স্ট্রিং থেকে নির্দিষ্ট সংখ্যক ক্যারেক্টার ডেস্টিনেশন স্ট্রিংয়ে কপি করে। এটি স্ট্রিং কপি করার সময় কপি করার ক্যারেক্টারের সংখ্যা নির্ধারণের সুযোগ দেয়।

সিঙ্কট্যাক্স:

char *strncpy(char *dest, const char *src, size_t n);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, World!";
    char dest[20];
    strncpy(dest, src, 5);
    dest[5] = '\0';  // Null character যোগ করা, কারণ strncpy() সবসময় null যোগ করে না
    printf("Copied string: %s\n", dest);
    return 0;
}

৪. strcmp() – দুটি স্ট্রিং তুলনা করা

strcmp() ফাংশনটি দুটি স্ট্রিং তুলনা করার জন্য ব্যবহৃত হয়। যদি স্ট্রিংগুলো সমান হয়, তাহলে এটি ০ রিটার্ন করে। যদি তারা সমান না হয়, তবে এটি একটি ধনাত্মক বা ঋণাত্মক মান রিটার্ন করে।

সিঙ্কট্যাক্স:

int strcmp(const char *str1, const char *str2);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    
    if (strcmp(str1, str2) == 0) {
        printf("Strings are equal\n");
    } else {
        printf("Strings are not equal\n");
    }

    return 0;
}

৫. strncmp() – নির্দিষ্ট সংখ্যক ক্যারেক্টার তুলনা করা

strncmp() ফাংশনটি দুটি স্ট্রিংয়ের নির্দিষ্ট সংখ্যক ক্যারেক্টার তুলনা করার জন্য ব্যবহৃত হয়। এটি প্রথম n সংখ্যক ক্যারেক্টার তুলনা করে এবং তারপরে রিটার্ন করে।

সিঙ্কট্যাক্স:

int strncmp(const char *str1, const char *str2, size_t n);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "Helium";
    
    if (strncmp(str1, str2, 3) == 0) {
        printf("First three characters are equal\n");
    } else {
        printf("First three characters are not equal\n");
    }

    return 0;
}

৬. strcat() – দুটি স্ট্রিং একত্রিত করা

strcat() ফাংশনটি দুটি স্ট্রিংকে একত্রিত করতে ব্যবহৃত হয়। এটি সোর্স স্ট্রিংকে ডেস্টিনেশন স্ট্রিংয়ের শেষে যোগ করে।

সিঙ্কট্যাক্স:

char *strcat(char *dest, const char *src);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[20] = "Hello";
    char str2[] = ", World!";
    
    strcat(str1, str2);
    printf("Concatenated string: %s\n", str1);

    return 0;
}

৭. strncat() – নির্দিষ্ট সংখ্যক ক্যারেক্টার যোগ করা

strncat() ফাংশনটি সোর্স স্ট্রিং থেকে নির্দিষ্ট সংখ্যক ক্যারেক্টার ডেস্টিনেশন স্ট্রিংয়ের শেষে যোগ করে।

সিঙ্কট্যাক্স:

char *strncat(char *dest, const char *src, size_t n);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[20] = "Hello";
    char str2[] = "World";
    
    strncat(str1, str2, 3);  // "World" এর প্রথম 3 ক্যারেক্টার যোগ হবে
    printf("Concatenated string: %s\n", str1);

    return 0;
}

৮. strchr() – স্ট্রিংয়ের মধ্যে নির্দিষ্ট ক্যারেক্টার খুঁজে বের করা

strchr() ফাংশনটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট ক্যারেক্টারের প্রথম অবস্থান খুঁজে বের করে এবং সেই অবস্থানে একটি পয়েন্টার রিটার্ন করে।

সিঙ্কট্যাক্স:

char *strchr(const char *str, int character);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char *pos = strchr(str, 'W');
    
    if (pos != NULL) {
        printf("Character found at position: %ld\n", pos - str);
    } else {
        printf("Character not found.\n");
    }

    return 0;
}

৯. strstr() – সাবস্ট্রিং খুঁজে বের করা

strstr() ফাংশনটি স্ট্রিংয়ের মধ্যে একটি সাবস্ট্রিং খুঁজে বের করে এবং সেই সাবস্ট্রিংয়ের শুরুতে একটি পয়েন্টার রিটার্ন করে।

সিঙ্কট্যাক্স:

char *strstr(const char *str, const char *substr);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char *pos = strstr(str, "World");
    
    if (pos != NULL) {
        printf("Substring found at position: %ld\n", pos - str);
    } else {
        printf("Substring not found.\n");
    }

    return 0;
}

১০. strdup() – স্ট্রিং ডুপ্লিকেট করা (নতুন কপি তৈরি করা)

strdup() ফাংশনটি একটি স্ট্রিংয়ের নতুন কপি তৈরি করে এবং সেই কপি করা স্ট্রিংয়ের পয়েন্টার রিটার্ন করে। এটি ডাইনামিক মেমোরি বরাদ্দ করে স্ট্রিংয়ের কপি তৈরি করে, যা free() ব্যবহার করে মুক্ত করতে হয়।

সিঙ্কট্যাক্স:

char *strdup(const char *str);

উদাহরণ:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
    char str[] = "Hello, World!";
    char *copy = strdup(str);
    
    if (copy != NULL) {
        printf("Copied string: %s\n", copy);
        free(copy);  // ডাইনামিক মেমোরি মুক্ত করা
    }

    return 0;
}

সারসংক্ষেপ

ফাংশনকাজউদাহরণ
strlen()স্ট্রিংয়ের দৈর্ঘ্য নির্ণয়strlen(str);
strcpy()স্ট্রিং কপি করাstrcpy(dest, src);
strncpy()নির্দিষ্ট সংখ্যক ক্যারেক্টার কপি করাstrncpy(dest, src, n);
strcmp()দুটি স্ট্রিং তুলনা করাstrcmp(str1, str2);
strncmp()নির্দিষ্ট সংখ্যক ক্যারেক্টার তুলনাstrncmp(str1, str2, n);
strcat()দুটি স্ট্রিং একত্রিত করাstrcat(dest, src);
strncat()নির্দিষ্ট সংখ্যক ক্যারেক্টার যোগ করাstrncat(dest, src, n);
strchr()স্ট্রিংয়ের মধ্যে ক্যারেক্টার খুঁজে বের করাstrchr(str, 'a');
strstr()স্ট্রিংয়ের মধ্যে সাবস্ট্রিং খুঁজে বের করাstrstr(str, "word");
strdup()স্ট্রিংয়ের কপি তৈরি করাchar *copy = strdup(str);

string.h হেডার ফাইলটি সি প্রোগ্রামিংয়ে স্ট্রিং ম্যানিপুলেশনের জন্য অপরিহার্য। এর মাধ্যমে প্রোগ্রামাররা সহজেই স্ট্রিং কপি, তুলনা, একত্রিতকরণ এবং অনুসন্ধান করতে পারেন।

common.content_added_by

strlen(), strcpy(), strncpy() এর মাধ্যমে স্ট্রিং কপি করা

242
242

strlen(), strcpy(), এবং strncpy() এর মাধ্যমে স্ট্রিং কপি করা

সি প্রোগ্রামিং ভাষায় স্ট্রিং ম্যানিপুলেশনের জন্য string.h হেডার ফাইলটি ব্যবহৃত হয়। এই হেডার ফাইলে স্ট্রিং সম্পর্কিত বিভিন্ন ফাংশন রয়েছে, যেমন strlen(), strcpy(), এবং **strncpy()**। এই ফাংশনগুলোর মাধ্যমে স্ট্রিং মাপা, কপি করা এবং নির্দিষ্ট সংখ্যক ক্যারেক্টার কপি করা যায়।

এখানে এই ফাংশনগুলোর বিস্তারিত ব্যবহার আলোচনা করা হলো:


১. strlen() – স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ

strlen() ফাংশনটি একটি স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ করতে ব্যবহৃত হয়। এটি স্ট্রিংয়ের মধ্যে কতগুলি ক্যারেক্টার (নাল ক্যারেক্টার ছাড়া) রয়েছে তা নির্ধারণ করে এবং একটি ইন্টিজার রিটার্ন করে।

সিঙ্কট্যাক্স:

size_t strlen(const char *str);

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    
    // স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ
    printf("Length of the string is: %zu\n", strlen(str));
    
    return 0;
}

এখানে strlen(str) স্ট্রিংয়ের দৈর্ঘ্য বের করে এবং আউটপুটে প্রদর্শন করে।


২. strcpy() – স্ট্রিং কপি করা

strcpy() ফাংশনটি একটি স্ট্রিংকে অন্য স্ট্রিংয়ে কপি করার জন্য ব্যবহৃত হয়। এটি প্রথম স্ট্রিংয়ের সমস্ত কন্টেন্ট (নাল ক্যারেক্টার সহ) কপি করে দ্বিতীয় স্ট্রিংয়ে।

সিঙ্কট্যাক্স:

char *strcpy(char *dest, const char *src);
  • dest – যেখানে স্ট্রিং কপি করা হবে।
  • src – যে স্ট্রিংটি কপি করা হবে।

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, World!";
    char dest[50];  // পর্যাপ্ত সাইজ থাকতে হবে

    // স্ট্রিং কপি করা
    strcpy(dest, src);

    printf("Source: %s\n", src);
    printf("Destination: %s\n", dest);

    return 0;
}

এখানে strcpy(dest, src) ফাংশনটি src স্ট্রিংয়ের কন্টেন্ট dest স্ট্রিংয়ে কপি করেছে।


৩. strncpy() – নির্দিষ্ট সংখ্যক ক্যারেক্টার কপি করা

strncpy() ফাংশনটি strcpy() এর মতোই কাজ করে, তবে এটি একটি সীমিত সংখ্যক ক্যারেক্টার কপি করতে পারে। এটি নির্দিষ্ট সংখ্যক ক্যারেক্টার কপি করার জন্য ব্যবহৃত হয়, এবং যদি সুত্র স্ট্রিং ছোট হয় তবে বাকি স্থান \0 দিয়ে পূর্ণ হয়।

সিঙ্কট্যাক্স:

char *strncpy(char *dest, const char *src, size_t n);
  • dest – যেখানে স্ট্রিং কপি করা হবে।
  • src – যে স্ট্রিংটি কপি করা হবে।
  • n – কপির জন্য স্ট্রিংয়ের দৈর্ঘ্য।

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, World!";
    char dest[50];

    // স্ট্রিংয়ের প্রথম 5 ক্যারেক্টার কপি করা
    strncpy(dest, src, 5);
    dest[5] = '\0';  // নিশ্চিত করা যে স্ট্রিংয়ের শেষে নাল ক্যারেক্টার যুক্ত হবে

    printf("Source: %s\n", src);
    printf("Destination: %s\n", dest);

    return 0;
}

এখানে strncpy(dest, src, 5) ফাংশনটি src স্ট্রিংয়ের প্রথম 5টি ক্যারেক্টার dest স্ট্রিংয়ে কপি করেছে। এরপর আমরা নিজে dest[5] = '\0'; ব্যবহার করে স্ট্রিংয়ের শেষে নাল ক্যারেক্টার যোগ করেছি।


সারসংক্ষেপ

ফাংশনকাজসিঙ্কট্যাক্স
strlen()স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণsize_t strlen(const char *str);
strcpy()একটি স্ট্রিংকে অন্য স্ট্রিংয়ে কপি করাchar *strcpy(char *dest, const char *src);
strncpy()নির্দিষ্ট সংখ্যক ক্যারেক্টার কপি করাchar *strncpy(char *dest, const char *src, size_t n);

এই ফাংশনগুলো স্ট্রিং ম্যানিপুলেশনের জন্য খুবই গুরুত্বপূর্ণ এবং সি প্রোগ্রামিংয়ে স্ট্রিং হ্যান্ডলিং সহজ ও কার্যকরী করতে সহায়ক। strlen() স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ করতে ব্যবহার হয়, strcpy() স্ট্রিং কপি করতে ব্যবহার হয়, এবং strncpy() সীমিত সংখ্যক ক্যারেক্টার কপি করতে ব্যবহৃত হয়।

common.content_added_by

strcmp(), strncmp() এর মাধ্যমে স্ট্রিং তুলনা করা

196
196

strcmp() এবং strncmp() এর মাধ্যমে স্ট্রিং তুলনা

সি প্রোগ্রামিং ভাষায় স্ট্রিং তুলনা করার জন্য দুটি গুরুত্বপূর্ণ ফাংশন রয়েছে: strcmp() এবং **strncmp()**। এই ফাংশন দুটি স্ট্রিংয়ের মধ্যে সমানতা যাচাই করতে বা তাদের মধ্যে পার্থক্য নির্ধারণ করতে ব্যবহৃত হয়।

এখানে বিস্তারিত আলোচনা করা হলো:


১. strcmp() – স্ট্রিং তুলনা (পুরো স্ট্রিং)

strcmp() ফাংশনটি দুটি স্ট্রিংয়ের মধ্যে সমানতা বা পার্থক্য যাচাই করার জন্য ব্যবহৃত হয়। এটি দুটি স্ট্রিংয়ের প্রতিটি অক্ষর একে অপরের সাথে তুলনা করে। যদি দুটি স্ট্রিং সমান হয়, তবে এটি 0 রিটার্ন করে, অন্যথায় এটি একটি নেতিবাচক বা ধনাত্মক মান রিটার্ন করে, যা স্ট্রিংয়ের পার্থক্য নির্ধারণ করে।

সিঙ্কট্যাক্স:

int strcmp(const char *str1, const char *str2);
  • str1 এবং str2 হলো তুলনা করার জন্য দুটি স্ট্রিং।
  • যদি str1 == str2, তাহলে এটি 0 রিটার্ন করবে।
  • যদি str1 < str2, তাহলে এটি একটি নেতিবাচক মান রিটার্ন করবে।
  • যদি str1 > str2, তাহলে এটি একটি ধনাত্মক মান রিটার্ন করবে।

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "Hello";
    char str3[] = "World";

    int result1 = strcmp(str1, str2);  // সমান স্ট্রিং
    int result2 = strcmp(str1, str3);  // আলাদা স্ট্রিং

    printf("strcmp(str1, str2) = %d\n", result1);  // 0 রিটার্ন করবে
    printf("strcmp(str1, str3) = %d\n", result2);  // একটি ধনাত্মক মান রিটার্ন করবে

    return 0;
}

আউটপুট:

strcmp(str1, str2) = 0
strcmp(str1, str3) = -15

২. strncmp() – স্ট্রিং তুলনা (নির্দিষ্ট সংখ্যক ক্যারেক্টার)

strncmp() ফাংশনটি দুটি স্ট্রিংয়ের প্রথম **n**টি ক্যারেক্টার তুলনা করতে ব্যবহৃত হয়। এটি একইভাবে কাজ করে যেমন strcmp(), তবে এটি শুধুমাত্র প্রথম n ক্যারেক্টার পর্যন্ত তুলনা করে। এটি তখন ব্যবহার করা হয় যখন আপনি শুধুমাত্র একটি নির্দিষ্ট অংশের স্ট্রিং তুলনা করতে চান।

সিঙ্কট্যাক্স:

int strncmp(const char *str1, const char *str2, size_t n);
  • str1 এবং str2 হলো তুলনা করার জন্য দুটি স্ট্রিং।
  • n হল তুলনা করার জন্য কতটা ক্যারেক্টার ব্যবহার করা হবে।

যদি প্রথম n ক্যারেক্টারের মধ্যে স্ট্রিংগুলো সমান হয়, তবে এটি 0 রিটার্ন করবে। অন্যথায়, এটি একটি নেতিবাচক বা ধনাত্মক মান রিটার্ন করবে।

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello World";
    char str2[] = "Hello";
    char str3[] = "Hello";

    int result1 = strncmp(str1, str2, 5);  // প্রথম 5 ক্যারেক্টার তুলনা
    int result2 = strncmp(str2, str3, 5);  // প্রথম 5 ক্যারেক্টার তুলনা

    printf("strncmp(str1, str2, 5) = %d\n", result1);  // 0 রিটার্ন করবে (কারণ প্রথম 5 ক্যারেক্টার সমান)
    printf("strncmp(str2, str3, 5) = %d\n", result2);  // 0 রিটার্ন করবে (কারণ প্রথম 5 ক্যারেক্টার সমান)

    return 0;
}

আউটপুট:

strncmp(str1, str2, 5) = 0
strncmp(str2, str3, 5) = 0

এখানে, strncmp() শুধুমাত্র প্রথম 5 ক্যারেক্টারের তুলনা করেছে, তাই প্রথম স্ট্রিং এবং দ্বিতীয় স্ট্রিংয়ের মধ্যে Hello অংশটি সমান হওয়ায় 0 রিটার্ন হয়েছে।


প্রধান পার্থক্য strcmp() এবং strncmp() এর মধ্যে

ফাংশনবর্ণনাব্যবহার
strcmp()দুটি স্ট্রিংয়ের সমস্ত ক্যারেক্টার তুলনা করে।দুটি স্ট্রিং সম্পূর্ণরূপে তুলনা করতে।
strncmp()দুটি স্ট্রিংয়ের প্রথম n ক্যারেক্টার তুলনা করে।দুটি স্ট্রিংয়ের একটি নির্দিষ্ট অংশ তুলনা করতে।

strcmp() পুরো স্ট্রিং তুলনা করে, তবে strncmp() শুধু প্রথম n ক্যারেক্টার পর্যন্ত তুলনা করে।


সারসংক্ষেপ

  • strcmp(): দুটি স্ট্রিং সম্পূর্ণ তুলনা করে এবং স্ট্রিং সমান হলে 0 রিটার্ন করে, অন্যথায় পার্থক্যের উপর ভিত্তি করে একটি ধনাত্মক বা নেতিবাচক মান রিটার্ন করে।
  • strncmp(): দুটি স্ট্রিংয়ের প্রথম n ক্যারেক্টার তুলনা করে এবং স্ট্রিং সমান হলে 0 রিটার্ন করে, অন্যথায় পার্থক্যের উপর ভিত্তি করে একটি ধনাত্মক বা নেতিবাচক মান রিটার্ন করে। এটি বিশেষ করে যখন স্ট্রিংয়ের কিছু অংশ তুলনা করতে হয় তখন ব্যবহৃত হয়।

এই ফাংশনগুলো স্ট্রিং অপারেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং আপনাকে সঠিকভাবে স্ট্রিং তুলনা করতে সহায়ক।

common.content_added_by

strcat(), strncat() এর মাধ্যমে স্ট্রিং সংযোজন

234
234

strcat() এবং strncat() এর মাধ্যমে স্ট্রিং সংযোজন

সি প্রোগ্রামিং ভাষায় স্ট্রিং সংযোজনের জন্য strcat() এবং strncat() ফাংশন দুটি ব্যবহৃত হয়। এই ফাংশনগুলো স্ট্রিংগুলিকে একত্রিত (concatenate) করার জন্য ব্যবহৃত হয়, অর্থাৎ একটি স্ট্রিংয়ের শেষে আরেকটি স্ট্রিং যোগ করতে ব্যবহৃত হয়।

এখানে আমরা এই দুটি ফাংশন এবং তাদের ব্যবহার বিস্তারিতভাবে আলোচনা করব।


১. strcat() – স্ট্রিং সংযোজন

strcat() ফাংশনটি একটি স্ট্রিংকে অন্য স্ট্রিংয়ের শেষে যোগ করতে ব্যবহৃত হয়। এটি প্রথম স্ট্রিংয়ের শেষে দ্বিতীয় স্ট্রিংটি যুক্ত করে এবং নতুন স্ট্রিংটি রিটার্ন করে।

সিঙ্কট্যাক্স:

char *strcat(char *dest, const char *src);
  • dest – যার সাথে নতুন স্ট্রিং যোগ করা হবে (লক্ষ্য স্ট্রিং)।
  • src – যে স্ট্রিংটি যোগ করা হবে (সূত্র স্ট্রিং)।

কাজের ধরন:
strcat() ফাংশনটি src স্ট্রিংটি dest স্ট্রিংয়ের শেষে যোগ করে, এবং নতুন স্ট্রিংটি dest পয়েন্টারের মাধ্যমে রিটার্ন করে।

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[50] = "Hello, ";
    char str2[] = "World!";
    
    // str2 কে str1 এর শেষে যোগ করা
    strcat(str1, str2);

    printf("Resulting string: %s\n", str1);  // আউটপুট: Hello, World!
    
    return 0;
}

এখানে strcat() ফাংশনটি "Hello, " স্ট্রিংটির শেষে "World!" যোগ করেছে এবং পুরো স্ট্রিং "Hello, World!" রিটার্ন করেছে।


২. strncat() – নির্দিষ্ট সংখ্যক ক্যারেক্টার সংযোজন

strncat() ফাংশনটি strcat() এর মতো, তবে এটি শুধুমাত্র একটি নির্দিষ্ট সংখ্যক ক্যারেক্টার যোগ করার সুযোগ দেয়। এটি স্ট্রিংয়ের শেষে শুধুমাত্র প্রথম n ক্যারেক্টার যোগ করে। এটি তখন ব্যবহৃত হয় যখন আপনি চান যে কোনো একটি নির্দিষ্ট দৈর্ঘ্য পর্যন্ত স্ট্রিং যোগ করা হোক।

সিঙ্কট্যাক্স:

char *strncat(char *dest, const char *src, size_t n);
  • dest – যার সাথে স্ট্রিং যোগ করা হবে।
  • src – যে স্ট্রিংটি যোগ করা হবে।
  • n – যে সংখ্যক ক্যারেক্টার src থেকে dest-এ যোগ করা হবে।

কাজের ধরন:
strncat() ফাংশনটি src স্ট্রিং থেকে প্রথম n ক্যারেক্টারকে dest স্ট্রিংয়ের শেষে যোগ করে।

উদাহরণ:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[50] = "Hello, ";
    char str2[] = "World! How are you?";
    
    // str2 এর প্রথম 6 ক্যারেক্টারকে str1 এর শেষে যোগ করা
    strncat(str1, str2, 6);

    printf("Resulting string: %s\n", str1);  // আউটপুট: Hello, World
    return 0;
}

এখানে strncat() ফাংশনটি "Hello, " স্ট্রিংটির শেষে "World!" স্ট্রিংয়ের প্রথম 6 ক্যারেক্টার যোগ করেছে এবং "Hello, World" আউটপুট হয়েছে।


strcat() এবং strncat() এর মধ্যে পার্থক্য

ফাংশনকাজব্যবহারের ধরন
strcat()একটি স্ট্রিংকে অন্য স্ট্রিংয়ের শেষে যোগ করাstrcat(dest, src);
strncat()নির্দিষ্ট সংখ্যক ক্যারেক্টার যোগ করাstrncat(dest, src, n);
  • strcat() পুরো স্ট্রিংটি যোগ করে।
  • strncat() শুধুমাত্র নির্দিষ্ট সংখ্যক ক্যারেক্টার যোগ করে, যা অতিরিক্ত সুরক্ষা প্রদান করে, বিশেষত যখন স্ট্রিং এর আকার নিশ্চিত করা প্রয়োজন।

সারসংক্ষেপ

  • strcat() এবং strncat() স্ট্রিং সংযোজনের জন্য ব্যবহৃত হয়।
  • strcat() একটি স্ট্রিংকে অন্য স্ট্রিংয়ের শেষে যোগ করে।
  • strncat() একটি স্ট্রিংয়ের শুরু থেকে নির্দিষ্ট সংখ্যক ক্যারেক্টার যোগ করে।
  • strncat() অধিক নিরাপদ, কারণ এটি স্ট্রিংয়ের আকার সীমাবদ্ধ করতে সহায়ক এবং বাফার ওভারফ্লো প্রতিরোধ করতে সাহায্য করে।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion